package com.cyt.sys.service;

import com.cyt.base.model.dto.ReturnResult;
import com.cyt.sys.model.po.SysMenu;
import com.cyt.sys.model.po.SysUser;
import com.cyt.sys.model.vo.SysMenuVo;

import java.util.List;

/**
 * 基础部分-菜单service接口类
 *
 * @author shengQiang yu
 * @date 2019-04-23 11:20
 */
public interface SysMenuService extends BaseService<SysMenu> {

    /**
     * list查询
     *
     * @param sysMenuVo 参数传入对象
     * @return ReturnResult
     * @author rong yuan
     * @date 2018-11-29 15:43
     */
    List<SysMenu> list(SysMenuVo sysMenuVo);

    /**
     * 保存/更新菜单信息
     *
     * @param sysMenuVo 参数传入对象
     * @param sysUser   当前用户
     * @return ReturnResult
     * @author rong yuan
     * @date 2018-11-29 15:43
     */
    ReturnResult addOrUpdate(SysMenuVo sysMenuVo, SysUser sysUser);

    /**
     * 逻辑删除菜单信息
     *
     * @param sysMenuVo 参数传入对象
     * @param sysUser   当前用户
     * @return ReturnResult
     * @author rong yuan
     * @date 2018-11-29 15:43
     */
    ReturnResult remove(SysMenuVo sysMenuVo, SysUser sysUser);

    /**
     * 获取菜单树
     *
     * @param sysMenuVo 参数传入对象
     * @return ReturnResult
     * @author shengQiang yu
     * @date 2019-04-23 16:34
     */
    ReturnResult dTreeList(SysMenuVo sysMenuVo);

    /**
     * 通过角色获取菜单
     *
     * @param menuType 菜单类型
     * @param sysUser  当前用户
     * @return ReturnResult
     * @author shengQiang yu
     * @date 2019-04-23 16:34
     */
    ReturnResult selectByRoleId(String menuType, SysUser sysUser);
}